import type { FilterGroupOperate } from './filter-group-operate.enum';
import type { PagedAndSortedResultRequestDto } from '@abp/ng.core';
import type { FilterRuleOperate } from './filter-rule-operate.enum';

export interface FilterGroupDto {
  rules: FilterRuleDto[];
  groups: FilterGroupDto[];
  operate: FilterGroupOperate;
}

export interface FilterGroupRequestDto extends PagedAndSortedResultRequestDto {
  filterGroup: FilterGroupDto;
}

export interface FilterRequestDto extends PagedAndSortedResultRequestDto {
  filter?: string;
}

export interface FilterRuleDto {
  property?: string;
  operate: FilterRuleOperate;
  value: object;
}
